package enum1.test;

import java.util.HashMap;
import java.util.Map;

public enum EnumTest2 {
    name(1, "name"),
    age(2, "age");


    private static Map<Integer, EnumTest2> map = new HashMap<>();

    static {
        for (EnumTest2 et : EnumTest2.values()) {
            map.put(et.code, et);
        }
    }

    public int code;
    private String value;

    EnumTest2(int code, String value) {//每个元素都对应一个该方法，因code为final，则必须在此实例化（也可以不是final类型）
        this.code = code;//若不是final、不实例化code，code默认为0，则所有的元素code都为0，而map只存最后一个code为0的元素（age）
        this.value = value;
    }

    public static EnumTest2 fromCode(int code) {
        return map.get(code);
    }
}
